package com.boom.springaiapp.controller;

import groovy.util.logging.Slf4j;
import org.springframework.ai.chat.client.ChatClient;
import org.springframework.web.bind.annotation.*;

/**
 * @author hhl
 * @version 1.0
 * @description
 * @date 2025/2/22 16:39
 */

@RestController
@CrossOrigin(origins = "*")
@Slf4j
public class ChatBotController {

    private final ChatClient chatClient;

    public ChatBotController(ChatClient.Builder builder) {
        this.chatClient = builder.defaultSystem("你是一个算命大师，当有人输入他的个人信息时，你就根据他提供的个人信息给它算命，" +
                "他会告诉你要算哪方面的，你需要根据他提供的信息进行算命。你只需要从以下标签中选出一个作为算命结果，并且只需要输出标签对应的数字，不需要输出其他内容。" +
                "标签及与数字的对应关系是：1:能发大财;2:找不到女朋友;3:长命百岁;4:会在会所工作;5:会成为程序员.").build();
    }

    @GetMapping("/chat")
    public String chat(@RequestParam("message") String message) {
        System.out.println("Get /chat param: "+message);
        String result = chatClient.prompt()
                .user("同时，你需要从以下选项中选出一项作为这个人的标签，选出的标签要符合这个人的命格或性格。选项有：找不到女朋友、能发大财、能遇到贵人、喜欢找女人、能活100岁；")
                .user(message)
                .call()
                .content();
        System.out.println("result" + result);
        return result;
    }

}
